package com.hexinfo.dmpro.sparing.dto;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import java.util.Date;
import java.util.List;

@Data
public class ScanSyncRuleDTO {
    /**
     * ID
     */
    @ApiModelProperty(value="ID")
    private String id;
//    /**
//     * 开始时间
//     */
//    @ApiModelProperty(value="开始时间")
//    private Date staTime;
//    /**
//     * 结束时间
//     */
//    @ApiModelProperty(value="结束时间")
//    private Date endTime;
    /**
     * 同步规则名称
     */
    @ApiModelProperty(value="同步规则名称")
    private String syncRuleName;
    /**
     * 非分区/分区
     */
    @ApiModelProperty(value="非分区/分区")
    private String isPart;
    /**
     * 有时间分区/无时间分区
     */
    @ApiModelProperty(value="有时间分区/无时间分区")
    private String isTimePart;
    /**
     * 所属源名称
     */
    @ApiModelProperty(value="所属源名称")
    private String sourceName;
    /**
     * 库名白规则(多个逗号隔开)
     */
    @ApiModelProperty(value="库名白规则(多个逗号隔开)")
    private List<String> baseNameWhiteList;
    /**
     * 库名黑规则(多个逗号隔开)
     */
    @ApiModelProperty(value="库名黑规则(多个逗号隔开)")
    private List<String> baseNameBlackList;
    /**
     * 表名白规则(多个逗号隔开)
     */
    @ApiModelProperty(value="表名白规则(多个逗号隔开)")
    private List<String> tableNameWhiteList;
    /**
     * 表名黑规则(多个逗号隔开)
     */
    @ApiModelProperty(value="表名黑规则(多个逗号隔开)")
    private List<String> tableNameBlackList;
    /**
     * 分区名白规则(多个逗号隔开)
     */
    @ApiModelProperty(value="分区名白规则(多个逗号隔开)")
    private List<String> partNameWhiteList;
    /**
     * 分区名黑规则(多个逗号隔开)
     */
    @ApiModelProperty(value="分区名黑规则(多个逗号隔开)")
    private List<String> partNameBlackList;
    /**
     * 分区值白规则(多个逗号隔开)
     */
    @ApiModelProperty(value="分区白规则(多个逗号隔开)")
    private List<String> partValueWhiteList;
    /**
     * 分区值黑规则(多个逗号隔开)
     */
    @ApiModelProperty(value="分区黑规则(多个逗号隔开)")
    private List<String> partValueBlackList;
    /**
     * 时间分区白名单
     */
    @ApiModelProperty(value="时间分区白名单")
    private List<String> partTimeWhiteList;
    /**
     * 时间分区黑名单
     */
    @ApiModelProperty(value="时间分区黑名单")
    private List<String> partTimeBlackList;
    /**
     * 同步范围 同步多久时间的数据 0为全量 数值为年数
     */
    @ApiModelProperty(value="同步范围 同步多久时间的数据 0为全量 数值为年数")
    private Integer syncRange;
    /**
     * 同步方式 (时间窗口同步,源标识同步)
     */
    @ApiModelProperty(value="同步方式 (时间窗口同步,源标识同步)")
    private String syncMode;
    /**
     * 执行频率 24小时执行还是立刻执行  立刻执行为：0
     */
    @ApiModelProperty(value="执行频率 24小时执行还是立刻执行  立刻执行为：0")
    private Integer exeFrequency;
    /**
     * 是否默认规则
     */
    @ApiModelProperty(value="是否默认规则")
    private String isDefaultRule;
    /**
     * 手动同步所需库名
     */
    @ApiModelProperty(value="手动同步所需库名")
    private String tblDatabaseName;
    /**
     * 手动同步所需表名
     */
    @ApiModelProperty(value="手动同步所需表名")
    private String tblName;
}
